package com.ocom.common.utils;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class ListUtils {

    //使用iterator，这个是java和Android源码中经常使用到的一种方法，所以最为推荐
    public static void remove1(List<String> list,String param) {
        Iterator<String> sListIterator = list.iterator();
        while (sListIterator.hasNext()) {
            String str = sListIterator.next();
            if (str.equals(param)) {
                sListIterator.remove();
            }
        }
    }
    //倒序删除，以防因为删除中间项导致数据下标变更，使得数据出错
    public static void remove2(List<String> list,String param) {
        for (int i = list.size() - 1; i >= 0; i--) {
            if (list.get(i).equals("3")) {
                list.remove(i);
            }
        }
    }
    // 顺序删除，但是对下标和索引进行了处理
    public static void remove3(List<String> list,String param) {
        for (int i = 0, len = list.size(); i < len; i++) {
            if (list.get(i).equals(param)) {
                list.remove(i);
                len--;
                i--;
            }
        }
    }
    // 在遍历过程中不直接操作原list
    public static void remove4(List<String> list,String param) {
        List<String> temp = new ArrayList<>();
        for (String str : list) {
            if (str.equals(param)) {
                temp.add(str);
            }
        }
        list.removeAll(temp);
    }
    public static void printList(List<String> list) {
        for (String str : list) {
            System.out.println(str);
        }
    }
}
